#ifndef AER_DEVICERESOURCE_HPP_
#define AER_DEVICERESOURCE_HPP_

#include "../aerDefs.hpp"
#include "../aerOpenGL.hpp"

namespace aer {

class DeviceResource
{
  protected:
    GLuint m_id;
    

  public:
    DeviceResource() : m_id(0u) {}
    
    virtual void generate() = 0;
    virtual void release() = 0;
    
    inline const GLuint getId() const { return m_id; }
    inline bool isGenerated() const { return m_id != 0u; }
};

} // aer

#endif // AER_DEVICERESOURCE_HPP_
